#ifndef LOGGERPRIVATE_H
#define LOGGERPRIVATE_H


#include "qslog/QsLogDest.h"
#include "loginfo.h"
#include "loginstance.h"

//私有类
class LoggerPrivate
{
public:
    /************************************************
     * 功能：构造函数
     ************************************************/
    LoggerPrivate();

    /************************************************
     * 功能：载入配置
     ************************************************/
    void load( Logging::RotateConfigInfo* pInfo );

    /************************************************
     * 功能：载入配置
     ************************************************/
    void load( Logging::TimeConfigInfo* pInfo );

    /************************************************
     * 功能：保存数据
     * 输入参数：
     *      level -- 日志等级
     *      data -- 日志数据
     ************************************************/
    void write( Logging::LogLevel level, const QString& data );

    /************************************************
     * 功能：添加存储目标地址
     * 输入参数：
     *      destination -- 存储地址
     ************************************************/
    void addDestination( QsLogging::DestinationPtr destination );

    /************************************************
     * 功能：去除存储目标地址
     * 输入参数：
     *      destination -- 存储地址
     ************************************************/
    void removeDestination( QsLogging::DestinationPtr destination );
public:
    QMutex m_mutex;//互斥锁
    Logging::DestinationList m_destList;//存储目标
    Logging::LogLevel m_eLogLevel;//日志等级
    Logging::LogLevel m_eDebugLevel;//日志等级
    QsLogging::DestinationPtr m_destDebug;//调试目标
};

#endif // LOGGERPRIVATE_H
